			//  ========== 
			//  = Line = 
			//  ========== 
			/*
			 * 创建对象         var linegraph = Line.createNew();
			 * 设置labelid        linegraph.Labelid("a");
			 * 创建SVG            linegraph.CreateSvg();
			 * 绘制                   linegraph.Draw();
			 * 
			 * 未来：
			 *      ===;
			 * */
			! function() {
				var Line = Object.create(Object);
				Object.defineProperties(Line, {
					"CreateNew": {
						"value": function() {
							return FCreateNew();
						}
					}
				});

				function FCreateNew() {
					var linegraph = Object.create(Line);
					linegraph = {
									"_labelid":undefined,
									"_width":undefined,
									"_data":undefined,
									"_placement_legend":undefined,
									"_scale_type_x":undefined,
									"_scale_type_y":undefined,
									"_switch_x_transfrom":undefined,
									"_scale_type_x_ordinal_type":undefined,
									"_scale_type_x_range_type_range_array":undefined,
									"_scale_type_x_range_type_min":undefined,
									"_scale_type_x_range_type_max":undefined,
									"_scale_type_x_range_type_Points_n":undefined,
									"_scale_type_x_range_type_Bands_p":undefined,
									"_scale_type_x_range_type_Bands_o":undefined,
									"_switch_y_transfrom":undefined,
									"_scale_type_y_ordinal_type":undefined,
									"_scale_type_y_range_type_range_array":undefined,
									"_scale_type_y_range_type_min":undefined,
									"_scale_type_y_range_type_max":undefined,
									"_scale_type_y_range_type_Points_n":undefined,
									"_scale_type_y_range_type_Bands_p":undefined,
									"_scale_type_y_range_type_Bands_o":undefined,
									"_showbackground_x":undefined,
									"_showbackground_y":undefined,
									"_bottomAxis":undefined,
									"_shownode":undefined,
									"_svg_type":undefined,
									"ValueToProperty":function (value,name) {
									    this[name] = value;
									    return this;
									}
								}
					
					//定义设置_labelid属性的方法
					Object.defineProperties(linegraph, {
						"Labelid": {
							"value": function(v) {
								this.ValueToProperty(v, "_labelid")
								return this;
							}
						},
						"Width": {
							"value": function(v) {
								this.ValueToProperty(v, "_width")
								return this;
							}
						},"Data": {
							"value": function(v) {
								this.ValueToProperty(v,"_data")
								return this;
							}
						},
						"Placement_legend": {
							"value": function(v) {
								this.ValueToProperty(v,"_placement_legend")
								return this;
							}
						},
						"Scale_type_x": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x")
								return this;
							}
						},
						"Scale_type_y": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y")
								return this;
							}
						},
						"Switch_x_transfrom": {
							"value": function(v) {
								this.ValueToProperty(v,"_switch_x_transfrom")
								return this;
							}
						},
						"Scale_type_x_ordinal_type": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_ordinal_type")
								return this;
							}
						},
						"Scale_type_x_range_type_range_array": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_range_array")
								return this;
							}
						},
						"Scale_type_x_range_type_min": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_min")
								return this;
							}
						},
						"Scale_type_x_range_type_max": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_max")
								return this;
							}
						},
						"Scale_type_x_range_type_Points_n": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_Points_n")
								return this;
							}
						},
						"Scale_type_x_range_type_Bands_p": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_Bands_p")
								return this;
							}
						},
						"Scale_type_x_range_type_Bands_o": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_x_range_type_Bands_o")
								return this;
							}
						},
						"Switch_y_transfrom": {
							"value": function(v) {
								this.ValueToProperty(v,"_switch_y_transfrom")
								return this;
							}
						},
						"Scale_type_y_ordinal_type": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_ordinal_type")
								return this;
							}
						},
						"Scale_type_y_range_type_range_array": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_range_array")
								return this;
							}
						},
						"Scale_type_y_range_type_min": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_min")
								return this;
							}
						},
						"Scale_type_y_range_type_max": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_max")
								return this;
							}
						},
						"Scale_type_y_range_type_Points_n": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_Points_n")
								return this;
							}
						},
						"Scale_type_y_range_type_Bands_p": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_Bands_p")
								return this;
							}
						},
						"Scale_type_y_range_type_Bands_o": {
							"value": function(v) {
								this.ValueToProperty(v,"_scale_type_y_range_type_Bands_o")
								return this;
							}
						},
						"Showbackground_x": {
							"value": function(v) {
								this.ValueToProperty(v,"_showbackground_x")
								return this;
							}
						},
						"Showbackground_y": {
							"value": function(v) {
								this.ValueToProperty(v,"_showbackground_y")
								return this;
							}
						},
						"BottomAxis": {
							"value": function(v) {
								this.ValueToProperty(v,"_bottomAxis")
								return this;
							}
						},
						"Shownode": {
							"value": function(v) {
								this.ValueToProperty(v,"_shownode")
								return this;
							}
						},
						"Svg_type": {
							"value": function(v) {
								this.ValueToProperty(v,"_svg_type")
								return this;
							}
						},
						"CreateSvg": {
							value: function() {
								CreateSvg_linegraph(this);
								return this;
							}
						},
						"Draw": {
							value: function() {
								draw_linegraph(this);
								return this;
							}
						}
					});

					function CreateSvg_linegraph(linegraph) {
						//createSvg之前先判断linegraph各属性
						DetermineProperties_linegraph(linegraph);

						linegraph.svg = d3.selectAll("#" + linegraph._svgid)[0][0] == null ?
							d3.select("#" + linegraph._labelid)
							.append("svg")
							//								.style("background", "red")
							.attr("id", linegraph._svgid)
							//              .attr("preserveAspectRatio", "xMidYMid meet")
							//              .attr("viewBox", "0 0 " + linegraph._width + " " + linegraph._height + " ");
							.attr("width", linegraph._width)
							.attr("height", linegraph._height) : linegraph.svg;;
						linegraph.tool_window = d3.select("body")
							.append("div")
							.attr({
								"class": linegraph._c_tool_window,
								"id": linegraph._id_tool_window,
								"left": 0,
								"top": linegraph._height,
							})
							.style({
								"opacity": 0
							})
					}

					function DetermineProperties_linegraph(linegraph) {
						SetId_linegraph(linegraph);
						linegraph._height = linegraph._width < 300 ? alert("width不能< 300") :
							(linegraph._width / 0.618 * (1 - 0.618) < 500 ? linegraph._width / 0.618 * (1 - 0.618) : 500);
						linegraph._ToRight = 100;
						linegraph._legend_length = 100;
						linegraph._linegraph_axis_x_length = linegraph._width - linegraph._ToRight - (linegraph._placement_legend ? linegraph._legend_length : 30);
						linegraph._scale_type_x_range_type_min = 0;
						linegraph._scale_type_x_range_type_max = linegraph._linegraph_axis_x_length;
						linegraph._scale_type_y_range_type_min = 0;
						linegraph._scale_type_y_range_type_max = linegraph._height - 100;
						// linegraph._showbackground_x = linegraph._switch_x_transfrom ? false : linegraph._showbackground_x;
						// linegraph._showbackground_y = linegraph._switch_y_transfrom ? false : linegraph._showbackground_y;

					}
					function draw_linegraph(linegraph) {
						Tool_linegraph(linegraph);
						DataPretreatment_linegraph(linegraph);

						d3.selectAll("." + linegraph._axis_x_class)[0][0] == null && linegraph.svg.append("g")
							.attr("class", linegraph._axis_x_class)
							.attr("transform", "translate(" + (linegraph._ToRight) + "," + (linegraph._height - 50 + linegraph._switch_x_transfrom * (linegraph.axis_y_scale(0))) + ")")
							.call(linegraph.axis_x)
							.style("font-size", "12px")
						d3.selectAll("." + linegraph._axis_y_class)[0][0] == null && linegraph.svg.append("g")
							.attr("class", linegraph._axis_y_class)
							.attr("transform", "translate(" + (linegraph._ToRight + linegraph._switch_y_transfrom * (linegraph.axis_x_scale(0))) + "," + (linegraph._height - 50) + ")")
							.call(linegraph.axis_y)
							.style("font-size", "12px");
						var maxlength = [];
						d3.selectAll("." + linegraph._axis_y_class).selectAll("text")[0].map(function(d) {
							maxlength.push(d.getComputedTextLength());
						});
						//"+(100 - 12- d3.max(maxlength)) +"
						linegraph.g_title_x = linegraph.svg.append("g")
							.attr({
								"class": linegraph._c_g_title_x,
								"id": linegraph._id_g_title_x,
								"transform": "translate(" + (linegraph._ToRight + linegraph._linegraph_axis_x_length / 2) + "," + (linegraph._height - 20) + ")"
							})
						linegraph.title_x_updata = linegraph.g_title_x.selectAll("." + linegraph._c_g_title_x).data(["x轴/cm"]);
						linegraph.title_x_enter = linegraph.title_x_updata.enter();
						linegraph.title_x_exit = linegraph.title_x_updata.exit();
						linegraph.g_title_y = linegraph.svg.append("g")
							.attr({
								"class": linegraph._c_g_grid_y_axis,
								"id": linegraph._id_g_grid_y_axis,
								"transform": "translate(" + (100 - 12 - d3.max(maxlength)) + " ," + (linegraph._height / 2) + ")"
							})
						linegraph.title_y_updata = linegraph.g_title_y.selectAll("." + linegraph._c_g_title_y).data(["y轴/个"]);
						linegraph.title_y_enter = linegraph.title_y_updata.enter();
						linegraph.title_y_exit = linegraph.title_y_updata.exit();

						linegraph.svg_legend_g = d3.selectAll("." + linegraph._svg_legend_g_class)[0][0] == null && linegraph.svg.append("g")
							.attr("class", linegraph._svg_legend_g_class)
							.attr("id", linegraph._svg_legend_g_id)
							.attr("transform", linegraph._placement_legend ? "translate(" + linegraph._width + ",0)" : "translate(0,0)");

						linegraph.g_grid_x_axis = linegraph.g_grid_x_axis || linegraph.svg.append("g")
							.attr({
								"class": linegraph._c_g_grid_x_axis,
								"id": linegraph._id_g_grid_x_axis,
								"transform": "translate(" + (linegraph._ToRight) + "," + (linegraph._height - 50) + ")"
							})
						linegraph.g_grid_y_axis = linegraph.g_grid_y_axis || linegraph.svg.append("g")
							.attr({
								"class": linegraph._c_g_grid_y_axis,
								"id": linegraph._id_g_grid_y_axis,
								"transform": "translate(" + (linegraph._ToRight) + "," + (linegraph._height - 50) + ")"
							})

						title(linegraph);
						grid(linegraph);
						legend(linegraph);

						function title(linegraph) {
							linegraph.title_x_enter.append("text")
								.attr({
									"class": linegraph._c_title_x,
									"id": linegraph._id_title_x,
									"x": 0,
									"dx": 0,
									"y": 0,
									"dy": 0
								})
								.style("font-size", "12px")
								.text(function(d) {
									return d;
								})
							linegraph.title_y_enter.append("text")
								.attr({
									"class": linegraph._c_title_y,
									"id": linegraph._id_title_y,
									"x": 0,
									"dx": 0,
									"y": 0,
									"dy": 0
								})
								.style({
									"font-size": "12px",
									"writing-mode": "tb"
								})
								.text(function(d) {
									return d;
								})

						}

						function grid(linegraph) {
							linegraph.grid_x = linegraph.g_grid_x_axis.call(d3.svg.axis().scale(linegraph.axis_x_scale).innerTickSize(-(linegraph._height - 100)))
							linegraph.grid_x.selectAll(".tick").selectAll("text").remove();
							linegraph.grid_x.selectAll(".domain").remove()
							linegraph.grid_x.selectAll("line")
								.attr("stroke-opacity", linegraph._showbackground_x ? 1 : 0)
								.style("stroke-dasharray", [2, 1])
							linegraph.grid_y = linegraph.g_grid_y_axis.call(d3.svg.axis().scale(linegraph.axis_y_scale).innerTickSize(-(linegraph._linegraph_axis_x_length)).orient("left"))
							linegraph.grid_y.selectAll(".tick").selectAll("text").remove();
							linegraph.grid_y.selectAll(".domain").remove()
							linegraph.grid_y.selectAll("line")
								.style("stroke-opacity", linegraph._showbackground_y ? 0.5 : 0)
								.style("stroke-dasharray", [2, 1])
						}

						function legend(linegraph) {
							linegraph.svg_legend_logo_updata = linegraph.svg_legend_g.selectAll("#" + linegraph._svg_legend_logo_class).data(linegraph._data_)
							linegraph.svg_legend_logo_enter = linegraph.svg_legend_logo_updata.enter();
							linegraph.svg_legend_logo_exit = linegraph.svg_legend_logo_updata.exit();
							linegraph.svg_legend_logo_enter.append("circle")
								.attr({
									"class": function(d, i) {
										return linegraph._svg_legend_logo_class + i;
									},
									"id": function(d, i) {
										return linegraph._svg_legend_logo_id + i;
									},
									"cx": function(d, i) {
										return linegraph._placement_legend ? (-10) : 110 + i * ((linegraph._width - 100) / linegraph._data_.length);

									},
									"cy": function(d, i) {
										return linegraph._placement_legend ? (20 * i + 10) : 10;
									},
									"fill": function(d, i) {
										return linegraph.colorscale(d.name);
									},
									"r": function(d, i) {
										return "5px";

									}
								});

							linegraph.svg_legend_text_updata = linegraph.svg_legend_g.selectAll("#" + linegraph._svg_legend_text_class).data(linegraph._data_)
							linegraph.svg_legend_text_enter = linegraph.svg_legend_text_updata.enter();
							linegraph.svg_legend_text_exit = linegraph.svg_legend_text_updata.exit();
							linegraph.svg_legend_text_enter.append("text")
								.attr({
									"class": function(d, i) {
										return linegraph._svg_legend_text_class + i;
									},
									"id": function(d, i) {
										return linegraph._svg_legend_text_id + i;
									},
									"x": function(d, i) {
										return linegraph._placement_legend ? -(10 + 5) : 115 + i * ((linegraph._width - 100) / linegraph._data_.length);

									},
									"y": function(d, i) {
											return linegraph._placement_legend ? (20 * i + 10 + 5) : 10 + 5;
										} //,

									//									"r": function(d, i) {
									//										return "5px";
									//
									//									}
								})
								.text(function(d, i) {
									return d.name
								})
								.style("text-anchor", linegraph._placement_legend ? "end" : "start")
						}

						var s = 0;
						linegraph.line_updata = linegraph.svg.selectAll("." + linegraph._c_g_line).data(linegraph._data.map(function(d) {
							return d;
						}))

						linegraph.line_enter = linegraph.line_updata.enter();
						linegraph.line_exit = linegraph.line_updata.exit();

						linegraph.line_enter
							.append("g")
							.attr({
								"class": function(d, i) {
									return linegraph._c_g_line + i
								},
								"id": function(d, i) {
									return linegraph._id_g_line + i
								},
								"stroke": function(d, i) {
									return linegraph.colorscale(d.name);
								},
								"fill": "transparent",
								"transform": "translate(" + linegraph._ToRight + "," + (linegraph._height - 50) + ")"
							})
							.selectAll("#" + linegraph.id_line)
							.data(function(d) {
								return [d.value]
							})
							.enter()
							.append("path")
							.attr({
								"class": function(d, i) {

									return linegraph._c_line + s + i;
								},
								"id": function(d, i) {
									return linegraph._id_line + s + i;
								},
								"d": function(d) {
									return linegraph.layout_line(d)
								},
								"stroke-width": '1'
							})

						s = 0;

						linegraph.node_updata = linegraph.svg.selectAll("." + linegraph._c_g_line).data(linegraph._data.map(function(d) {

							return d;
						}))

						linegraph.node_enter = linegraph.node_updata.enter();
						linegraph.node_exit = linegraph.node_updata.exit();
						linegraph.node_enter
							.append("g")
							.attr({
								"class": function(d, i) {
									return linegraph._c_g_node + i
								},
								"id": function(d, i) {
									return linegraph._id_g_node + i
								},
								"stroke": function(d, i) {
									return linegraph.colorscale(d.name);
								},
								"fill": "transparent",

								"transform": "translate(" + linegraph._ToRight + "," + (linegraph._height - 50) + ")"

							})
							.selectAll("#" + linegraph.id_node)
							.data(function(d, i) {
								d.value.map(function(q) {
										q.name = d.name;
										q.xu = i;
										return q;
									})
									//var a = [];
								return d.value
							})
							.enter()
							.append("path")
							.attr({
								"class": function(d, i) {
									return linegraph._c_node + s + i;
								},
								"id": function(d, i) {
									return linegraph._id_node + s + i;
								},
								"d": function(d) {
									return linegraph.symbol(d.xu)
								},
								"transform": function(b, i) {
									return "translate(" + (linegraph._bottomAxis == "x"  ? linegraph.axis_x_scale(b[0]) : linegraph.axis_x_scale(b[1])) + "," + (linegraph._bottomAxis == "x"  ? linegraph.axis_y_scale(b[1]) : linegraph.axis_y_scale(b[0])) + ")"
								},
								"stroke-width": '1',
								"opacity": function() {
									return linegraph._shownode ? 1 : 0;
								}
							})
//							.on("mouseover", function(d) {
//								linegraph.tool_window.html("type:" + d.name + "<br />" + "x:" + d[0] + "<br />" + "y:" + d[1])
//									.style("left", (d3.event.pageX) + "px")
//									.style("top", (d3.event.pageY + 20) + "px")
//									.style("opacity", 1.0)
//									.transition()
//									.delay(10000)
//									.style("opacity", 0)
//							})
							.on("mousemove", function(d) {
									linegraph.tool_window.html("type:" + d.name + "<br />" + "x:" + d[0] + "<br />" + "y:" + d[1])
										.style("left", (d3.event.pageX) + "px")
										.style("top", (d3.event.pageY + 20) + "px")
										.style("opacity", 1.0)
								})
								.on("mouseout",function (d) {
								    linegraph.tool_window
								    .html("")							    	
										.style("left","0px")
										.style("top",  "0px")
										.style("opacity", 0.0)
										
								})

					}
					function Tool_linegraph(linegraph) {
						linegraph.colorscale = d3.scale.category10();
						linegraph.layout_line = d3.svg.line()
							.x(function(d) {
								return linegraph._bottomAxis == "x"  ? linegraph.axis_x_scale(d[0]) : linegraph.axis_x_scale(d[1])
							})
							.y(function(d) {
								return linegraph._bottomAxis == "x"  ? linegraph.axis_y_scale(d[1]) : linegraph.axis_y_scale(d[0]);
							})
							.interpolate("linear ");
						linegraph.symbol = d3.svg.symbol()
							.type(function(i) {
								return d3.svg.symbolTypes[i];
							})
							.size(60);

					}

					function DataPretreatment_linegraph(linegraph) {
						linegraph._data_ = []; //linegraph._data_ = 
						linegraph._data.map(function(d, i) {
							var a = [];
							d.value.map(function(q, j) {

								var b = q;
								b.name = d.name;
								b.weight = d.weight[j];
								d.i = i;
								a.push(b);
							})
							a.name = d.name;
							linegraph._data_.push(a);
						})

						linegraph.colorscale();

						linegraph._data.map(function(d, i) {})
						Package_scale(linegraph, "x");
						Package_scale(linegraph, "y");
					}

					function Package_scale(linegraph, object) {
						var scale;
						var array = ["_scale_type_" + object, //0
							"_scale_type_" + object + "_ordinal_type", //1
							"_scale_type_" + object + "_range_type_range_array", //2
							"_scale_type_" + object + "_range_type_min", //3
							"_scale_type_" + object + "_range_type_max", //4
							"_scale_type_" + object + "_range_type_Points_n", //5
							"_scale_type_" + object + "_range_type_Bands_p", //6
							"_scale_type_" + object + "_range_type_Bands_o", //7
							"_axis_" + object + "_data", //8
							"axis_" + object + "_scale", //9
							"axis_" + object, //10
							"_showbackground_" + object //11
						];

						if(linegraph[array[0]] == 1) {
							scale = d3.scale.linear();
							var max = [],
								min = [];
							linegraph._data.map(function(d) {
								max.push(d3.max(d.value.map(function(d) {
									return d[object == linegraph._bottomAxis ? 0 : 1]
								})))
								min.push(d3.min(d.value.map(function(d) {
									return d[object == linegraph._bottomAxis ? 0 : 1]
								})))
							})
							var domain = object == linegraph._bottomAxis ? [d3.min(min), d3.max(max)] : [d3.min(min), d3.max(max)]
								//							linegraph[array[8]] = Filterthedata(linegraph._data, "data") /*[0].linegraphs*/ .map(function(d, i) {
								//
								//								return d[0][(object == "x" ? "x" : "value1")];
								//							}).sort(function(a, b) {
								//								return b - a;
								//							})
							var ceshi = domain.map(function(d, i) {
								if(i == 0) {
									var ii = 0;

									var f = d >= 0 ? 1 : -1;
									var num = Math.abs(d);
									while(num >= 10) {
										num = (num - (num % 10)) / 10;
										ii++;
									}
									var c = Math.pow(10, ii)
									var o = Math.ceil(Math.abs(d) / c)
									var shu = f > 0 ? (c == 1 ? 0 : f * o * c) : (c == 1 ? 10 * f : f * o * c);
									return shu;
								} else {
									//  ========== 
									//  = 此处不该纠结 = 
									//  ========== 
									var ii = 0;

									var f = d >= 0 ? 1 : -1;
									var num = Math.abs(d);
									while(num >= 10) {
										num = (num - (num % 10)) / 10;
										ii++;
									}
									var c = Math.pow(10, ii)
									var o = Math.ceil(Math.abs(d) / c)
									var shu = f > 0 ? (c == 1 ? 10 * f : f * o * c) : (c == 1 ? 0 : f * o * c);
									return shu;
								}
							});
							scale.domain(ceshi); //数值中的元素依旧是数组。但是实际需要时每个元素的第一个值来衡量。linegraph._data，function(d){return d[1]};设置无效。
							//							var max = d3.max(linegraph._layoutlinegraph(linegraph._data), function(d) {
							//								return d3.max(d.values, function(d) {
							//									return d.y0 + d.y;
							//								});
							//							})
							//							object == "y" && scale.domain([0, max]);
							scale.rangeRound([(object == "x" ? 1 : -1) * linegraph[array[3]], (object == "x" ? 1 : -1) * linegraph[array[4]]])
						} else if(linegraph[array[0]] == 2) {
							scale = d3.scale.ordinal();
							linegraph[array[8]] = linegraph._data_.columns
								/*.sort(function(a, b) {
								                            return a - b
								                        })*/
							if(linegraph[array[1]] == 1) {
								scale.range(linegraph[array[2]]);
							} else if(linegraph[array[1]] == 2) {
								scale.rangeRoundPoints([(object == "x" ? 1 : -1) * linegraph[array[3]], (object == "x" ? 1 : -1) * linegraph[array[4]]], linegraph[array[5]]);
							} else {
								scale.rangeRoundBands([(object == "x" ? 1 : -1) * linegraph[array[3]], (object == "x" ? 1 : -1) * linegraph[array[4]]], linegraph[array[6]], linegraph[array[7]])
							}
							scale.domain(linegraph[array[8]]); //数值中的元素依旧是数组。但是实际需要时每个元素的第一个值来衡量。linegraph._data，function(d){return d[1]};设置无效。
						} else {
							scale = d3.time.scale();
						}

						linegraph[array[9]] = scale;
						linegraph[array[10]] = d3.svg.axis()
							.scale(linegraph[array[9]])
							.tickSize(1)
							//                              .innerTickSize(object == "x" ? -3 : 3)
							.innerTickSize(3)
							//							.outerTickSize(object == "x" ? (linegraph[array[11]] == true ?  linegraph._switch_x_transfrom * linegraph.axis_x_scale(0) -19 : 0) : (linegraph[array[11]] == true ? - linegraph._switch_y_transfrom * linegraph.axis_y_scale(0) +19 : 0))
							.orient(object == "x" ? "bottom" : "left");
					}

					//  ========== 
					//  = 判断属性 = 
					//  ========== 
					function Detect_function_linegraph(object_lh) {
						return typeof(object_lh) == "undefined";
					}
					function SetId_linegraph(linegraph) {
						linegraph._svgid = linegraph._labelid + "svg";
						linegraph._axis_x_class = linegraph._labelid + "axis_x_class";
						linegraph._axis_y_class = linegraph._labelid + "axis_y_class";
						linegraph._c_g_line = linegraph._labelid + "_c_g_line";
						linegraph._id_g_line = linegraph._labelid + "_id_g_line";
						linegraph._c_g_node = linegraph._labelid + "_c_g_node";
						linegraph._id_g_node = linegraph._labelid + "_id_g_node";
						linegraph._c_line = linegraph._labelid + "_c_line";
						linegraph._id_line = linegraph._labelid + "_id_line";
						linegraph._c_node = linegraph._labelid + "_c_node";
						linegraph._id_node = linegraph._labelid + "_id_node";
						linegraph._c_g_title_x = linegraph._labelid + "_c_g_title_x"
						linegraph._id_g_title_x = linegraph._labelid + "_id_g_title_x"
						linegraph._c_title_x = linegraph._labelid + "_c_title_x"
						linegraph._id_title_x = linegraph._labelid + "_id_title_x"

						linegraph._c_g_title_y = linegraph._labelid + "_c_g_title_y"
						linegraph._id_g_title_y = linegraph._labelid + "_id_g_title_y"
						linegraph._c_title_y = linegraph._labelid + "_c_title_y"
						linegraph._id_title_y = linegraph._labelid + "_id_title_y"

						linegraph._c_g_grid_x_axis = linegraph._labelid + "_c_g_grid_x_axis";
						linegraph._id_g_grid_x_axis = linegraph._labelid + "_id_g_grid_x_axis";
						linegraph._c_g_grid_y_axis = linegraph._labelid + "_c_g_grid_y_axis";
						linegraph._id_g_grid_y_axis = linegraph._labelid + "_id_g_grid_y_axis";
						linegraph._c_grid_x_axis = linegraph._labelid + "_c_grid_x_axis";
						linegraph._id_grid_x_axis = linegraph._labelid + "_id_grid_x_axis";
						linegraph._c_grid_y_axis = linegraph._labelid + "_c_grid_y_axis";
						linegraph._id_grid_y_axis = linegraph._labelid + "_id_grid_y_axis";
						linegraph._svg_legend_g_class = linegraph._labelid + "legend_g_class";
						linegraph._svg_legend_g_id = linegraph._labelid + "legend_g_id";
						linegraph._svg_legend_logo_class = linegraph._labelid + "legend_logo_class";
						linegraph._svg_legend_logo_id = linegraph._labelid + "legend_logo_id";
						linegraph._svg_legend_text_class = linegraph._labelid + "legend_text_class";
						linegraph._svg_legend_text_id = linegraph._labelid + "legend_text_id";

						linegraph._c_tool_g = linegraph._labelid + "_c_tool_g";
						linegraph._id_tool_g = linegraph._labelid + "_id_tool_g";
						linegraph._c_tool_line = linegraph._labelid + "_c_tool_line";
						linegraph._id_tool_line = linegraph._labelid + "_id_tool_line";
						linegraph._c_tool_window = "Tooltip";
						linegraph._id_tool_window = linegraph._labelid + "PiesTooltip_id";

					}
					return linegraph;
				};
				this.Line = Line;
			}();